-- title: game title
-- author: game developer, email, etc.
-- desc: short description
-- site: website link
-- license: MIT License (change this to your license of choice)
-- version: 0.1
-- script: lua
-- TODO:
-- - Fix warp system, be able to add more warps easier
-- - Princess follow dragon
-- - Enemies, placement, and HP
-- - Bullet damage
-- - Game ending
function GetDistance( x1, y1, x2, y2 )
return math.sqrt( ( x2 - x1 )^2 + ( y2 - y1 )^2 )
end
t=0
x=96
y=24
bx=-100
by=-100
mapx = 0
mapy = 0
playerspr = 1
bvelx=0
bvely=0
pvelx=0
pvely=0
px=0
py=0
ex=50
ey=75
enemyheath=100
playerheath=100
warps = {
{ mapxA=30, mapyA=0, xA=214, yA=66,
mapxB=60, mapyB=0, xB=(89-60)*8, yB=12*8
}
}
warptimer=0
enemies={
{x=0,y=0, img=2, hp=5}
}
function TIC()
map (mapx,mapy)
spr (playerspr,x,y,10)
spr (playerspr+1,x+8,y,10)
spr (playerspr+16,x,y+8,10)
spr (playerspr+17,x+8,y+8,10)
spr (81,bx,by,0)
spr (13,ex, ey,0)
spr (14,ex+8,ey,0)
spr (29,ex, ey+8,0)
spr (30,ex+8,ey+8,0)
--
--print(x..","..y,5,5)
--print(warps[1].xA..","..warps[1].yA,5,15)
if btn(0) then y=y-1 end
if btn(1) then y=y+1 end
if btn(2) then x=x-1
playerspr =1
end
if btn(3) then x=x+1
playerspr=97
end
if x > 240 then
mapx =30
x=0
elseif x<-8 then
mapx = mapx -30
x = 240-8
elseif y > 136 then
mapy = mapy+17
y = 0
elseif y <-8 then
mapy = mapy-17
y = 136-8
end
if btn(0) then py=py-1; pvelx=0; pvely=-1 end
if btn (1) then py=py+1; pvelx=0; pvely=1 end
if btn (2) then px=px-1; pvelx=-1; pvely=0 end
if btn (3) then px=px+1; pvelx=1; pvely=0 end
if btn(4) and bx==-100 then
bx=x; by=y
bvelx=pvelx*2; bvely = pvely*2
end
if bx ~= -100 then
bx=bx+bvelx
by=by+bvely
end
if bx < -20 or bx > 240 or by < -20 or by > 136
then bx = -100
end
if warptimer == 0 then
for id,wp in pairs(warps) do
if mapx==wp.mapxA and mapy==wp.mapyA then
if GetDistance(x, y, wp.xA, wp.yA) <= 7 then
mapx = wp.mapxB; mapy = wp.mapyB
x =wp.xB; y =wp.yB
warptimer = 100
end
elseif mapx==wp.mapxB and mapy==wp.mapyB then
if GetDistance(x, y, wp.xB, wp.yB) <= 7 then
mapx = wp.mapxA; mapy = wp.mapyA
x = wp.xA; y =wp.yA
warptimer = 100
end
end
end
elseif warptimer >0 then
warptime = warptimer - 1
end
enemies={
{x=0,y=0,img=2,hp=5}
}
end
--
-- 001:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4aaaaaa4aaaaa222aaa22022a2
-- 002:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2aaaaaa242aa4a2424aa3a424aaa2a
-- 003:6666666666646666664646666664666666656666666576666665666666666666
-- 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c
-- 005:6666666666666666666666666666666666666666666666666666666666666666
-- 006:6666666666666666666666666666666666666666666666666666666666666666
-- 007:aaaaaaaaaaaaaaaaaaaaaaa2aaaaa222aaa22221aa221212aa221222aa212222
-- 008:aaa22222a2222222222122222122222222222222222222222222222222222222
-- 009:2222222a22222222222222222222222222222222222222222222222222222222
-- 010:aaaaaaaaaaaaaaaa22aaaaaa222aaaaa222aaaaa222aaaaa222222aa2222122a
-- 011:000000040000044400000fff00000ff40000ff4f0000ff4c000fff24000ff442
-- 012:b400000044440000ffff000044ff00004f4ff0004c4ff000442fff002244ff00
-- 013:00000000000000000000066600006666000066ff000066660000665500006666
-- 014:000000000066000066660000666650006ff66000666660005566600065566000
-- 017:a2222222aa222222aaaa2222aaaa2222aaaa2aaaaaaa2aaaaaa2aaa2aaaaaaaa
-- 018:24aaa2aa22aa2aaa2222aaaa222aaaaa2aaaaaaa2aaaaaaaaaaaaaaaaaaaaaaa
-- 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- 021:6666666666666666666666666666656666666656666656656666655566666655
-- 022:6666666666666666666666666566666656666666566566666556666655666666
-- 023:222122222222222222222222aa222222aa2222eeaaeeeeeeaaaaeedeaaaaaede
-- 024:22222222222222222222222222222222eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
-- 025:22222222222222222222222222222222e22222eeeeeeeeeeeeedeeeeeeedeeee
-- 026:2222112a2211112a2222222222222222eeeaaaaaeeeaaaaaeeaaaaaaeaaaaaaa
-- 027:000ff044000f0000000004bb000004bb000004bb00000bbb0000bb4400000044
-- 028:4440ff0040000f00bbb40000bbb40000bbb40000bbbb0000044bb00004400000
-- 029:0000666600006666000006660000000500000066000000650000065600000665
-- 030:6666600066660000666000006660000056000000600000000000000000000000
-- 033:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccaaaaccccaaaccccc
-- 034:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccaaaaaacccaaaaaccccaaaa
-- 035:6666666666666666666666666666666666666666666666666666666666666666
-- 036:6666666666666666666666666666666666666666666666666666666666666666
-- 037:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
-- 038:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
-- 039:aaaaadeeaaaaaaeeaaaaaaeeaaaaaaeeaaaaaaedaaaaaaeeaaaaaaeeaaaaaaed
-- 040:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedeeeeeeedeeeeeee
-- 041:eeddeeeaeeeeeeeaeeeeeeeaeeeeeeeaeeeeeeeaeeeeeeeaeeeeeeeaeeeeeeea
-- 042:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-- 049:aaccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-- 050:cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-- 051:6666644466664433666643446666434466664433666664446666666666666666
-- 052:4666666644666666346666663466666644666666466666666666666666666666
-- 053:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
-- 054:6565656556565656656565655656565665656565565656566565656556565656
-- 055:aaaaaaedaaaaaaeeaaaaaaeeaaaaaaeeaaaaaaeeaaaaaaeeaaaaaaeeaaaaaaee
-- 056:eee33333ee333333ee333333ee333333ee33333fee33333fee333333ee333333
-- 057:3eeeeeea33eeeeea33eeeeea33eeeeeaf3eeeddaf3eeeeda33eeedea33eeedea
-- 058:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-- 065:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-- 066:9999999999999999999999999999999999999999999999999999999999999999
-- 067:2222222222222222222222222222222222222222222222222222222222222222
-- 068:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
-- 069:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
-- 070:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-- 081:0000000000000000004034400023344000223300002220400202000000000000
-- 082:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-- 083:1111111111111111111111111111111111111111111111111111111111111111
-- 084:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 085:dddddddddddddddddddddddddddddddddddddddedddddddedddcccceccccccce
-- 086:ddddddddddddddddddddddddddddddddeeedddddeeedddddeeedddddeeeddddd
-- 097:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2aaa4aa242aa3aa4242a2aaa424
-- 098:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4aaaaaaaa4aaaaaaa222aaa2a22022a
-- 099:ddddddddddddddddddddddddddd22222ddd22222ddd22222ddd11111ddd11111
-- 100:dddddddddddddddddddddddd2222222211222222112222222222222222222222
-- 101:ccccccceccccccceccccccce2222211e2222211e2221122e2221122e2222222e
-- 102:eeedddddeeedddddeeedddddeeedddddeeedddddeeedddddeeedddddeeeddddd
-- 113:aa2aaa42aaa2aa22aaaa2222aaaaa222aaaaaaa2aaaaaaa2aaaaaaaaaaaaaaaa
-- 114:2222222a222222aa2222aaaa2222aaaaaaa2aaaaaaa2aaaa2aaa2aaaaaaaaaaa
-- 115:dddeeeeedddeeeeedddeeeefdddffeefdddfffffdddfffffdddfffffdddfffff
-- 116:eeeeeeeeeeeeffffffffffffdddddddddddddddddddddddddddddddddddddddd
-- 117:eeeeeeeefeeffeeeffffffffddddddffddddddffddddddffddddddffddddddff
-- 118:eeedddddeeedddddeeedddddffedddddfffdddddfffdddddfffdddddfffddddd
--
--
--
-- 000:00000000ffffffff00000000ffffffff
-- 001:0123456789abcdeffedcba9876543210
-- 002:0123456789abcdef0123456789abcdef
--
--
-- 000:60008000b00da00ca07da00da00ea00fa0c1a002b001a002a001a001a00e900e907e900090018000800f700370e27051800f900ea00ea00d800d000e000000000000
--
--
-- 000:100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
--
--
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
--